home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / kn / elate / visual / createvisual.asm < prev    next >
Encoding:
Assembly Source File  |  2001-05-12  |  4.8 KB  |  221 lines

  1.  
  2.     .include 'taort'
  3.     .include 'ave/toolkit/toolkit.inc'
  4.     .include 'lib/tek/kn/elate/visual.inc'
  5.  
  6.     .include 'ave/font/style.inc'
  7.     .include 'ave/font/enumerate.inc'
  8.  
  9. ;=============================================================================
  10. ;-----------------------------------------------------------------------------
  11. ;    TEKlib
  12. ;    (C) 1999-2001 TEK neoscientists
  13. ;    all rights reserved.
  14. ;
  15. ;    TAPTR kn_createvisual(TAPTR mmu)
  16. ;
  17. ;-----------------------------------------------------------------------------
  18. ;=============================================================================
  19.  
  20.     tool 'lib/tek/kn/visual/createvisual',VP,0
  21.  
  22. ;-----------------------------------------------------------------------------
  23.  
  24. FONTHEIGHT    = 15
  25.  
  26. ;-----------------------------------------------------------------------------
  27.  
  28.     ent p0 : p0
  29.  
  30.     defbegin
  31.     defp mmu
  32.     defp fontman,fontdes,font,title
  33.     defi width,height,backcol,tok
  34.     defi index,temp
  35.  
  36.     defp visual,buffer,buffer2,ave,app,tkit,prp,win,cnt,layout,scrollpane,pixmap
  37.  
  38.         cpy.i    0,backcol
  39.         cpy.i    500,width
  40.         cpy.i    500,height
  41.  
  42.         cpy.p    appname,title
  43.  
  44.  
  45.         ;    alloc buffers.
  46.         
  47.         qcall    lib/malloc,(vis_size:visual)
  48.         bcn    visual eq 0,_cw_exit
  49.         
  50.         qcall    lib/memset,(visual,0,vis_size:p~)
  51.  
  52.         qcall    lib/malloc,(width*height*4:buffer)
  53.         bcn    buffer eq 0,_cw_fail
  54.         qcall    lib/memseti,(buffer,backcol,width*height*4:p~)
  55.         cpy.p    buffer,[visual+vis_buffer]
  56.  
  57.         qcall    lib/malloc,(width*height*4:buffer2)
  58.         bcn    buffer2 eq 0,_cw_fail
  59.         qcall    lib/memseti,(buffer2,backcol,width*height*4:p~)
  60.         cpy.p    buffer2,[visual+vis_buffer2]
  61.         
  62.  
  63.  
  64.         ;    get font.
  65.  
  66.         qcall    ave/font/getfm, (-:fontman)
  67.         bcn    fontman eq 0, _cw_fail
  68.     
  69.  
  70.         als    FNTMAN_FONTLIST_SIZE
  71.         cpy.p    sp,fontdes
  72.         qcall    ave/font/setfer,(fontdes:-)
  73.     ;    cpy.p    defaultfontname,[fontdes+FONT_DISPLAYNAME]
  74.         cpy.i    FDF_MONOSPACE|FDF_BOLD|FDF_NO_ANTIALIAS,[fontdes+FONT_DESCRIPTORFLAGS]
  75.         als    8
  76.         reftool    ave/font/cmp_displayname,[sp]
  77.         reftool    ave/font/cmp_flags,[sp+4]
  78.         qcall    ave/font/matchfont,(fontman,fontdes,sp,2.i:index)        
  79.         als    -8
  80.         als    -FNTMAN_FONTLIST_SIZE
  81.  
  82.         qcall    ave/font/openindex,(fontman,index,FONTHEIGHT:font)
  83.  
  84.         qcall    ave/font/losefm,(fontman:-)
  85.  
  86.         bcn    font eq 0, _cw_fail
  87.         cpy.p    font,[visual+vis_font]
  88.         
  89.         
  90.         cpy.i    FONTHEIGHT,[visual+vis_fontheight]
  91.  
  92.         cpy.i    -1,temp
  93.         ncall    font,getwidth,(font,temp:temp)
  94.         cpy.i    temp,[visual+vis_fontwidth]
  95.         cpy.i    FONTHEIGHT,[visual+vis_fontheight]
  96.     
  97.  
  98.  
  99.         ;    open ave.
  100.  
  101.         qcall    sys/kn/dev/lookup,(avename.p:ave,app)
  102.         bcn    ave eq 0,_cw_fail
  103.         
  104.         ncall    ave,open,(ave,app,0,0:app)
  105.         bcn    app eq 0,_cw_fail    
  106.  
  107.         cpy.p    app,[visual+vis_app]
  108.         cpy.p    ave,[visual+vis_ave]
  109.  
  110.  
  111.         ;    open toolkit.
  112.         
  113.         ncall    ave,opentoolkit,(ave:tkit)
  114.         bcn    tkit eq 0,_cw_fail
  115.         cpy.p    tkit,[visual+vis_toolkit]
  116.  
  117.  
  118.         ;    get application props, open window.
  119.  
  120.         ncall    app,getprop,(app:prp)
  121.         ncall    tkit,createdialog,(tkit,prp,title,0.p,width,height,FDI_BORDER|FDI_TITLE|FDI_DRAG|FDI_CLOSE|FDI_CONTENT|FDI_INNER|FDI_RESIZE:win)
  122.         bcn    win eq 0,_cw_fail
  123.         cpy.p    win,[visual+vis_window]
  124.  
  125.  
  126.         ;    cpy.i    4,tok
  127.         ;    ncall    win,settokenmask,(win,tok,tok:-)        ; ?
  128.  
  129.  
  130.  
  131.         ;    set layout/scrollpane.
  132.         
  133.         ncall    win,getgadgets,(win:p~,p~,cnt)
  134.         
  135.         qcall    ave/layout/scrollpane/open,(100,100:layout)
  136.         bcn    layout eq 0,_cw_fail
  137.         ncall    tkit,createscrollpane,(tkit,prp,0,0,0,FSP_CONTENT:scrollpane)
  138.         bcn    scrollpane eq 0,_cw_fail
  139.  
  140.         ncall    cnt,addlayout,(cnt,layout:-)
  141.         ncall    cnt,add,(cnt,scrollpane,0:-)
  142.         ncall    scrollpane,getgadgets,(scrollpane:p~,p~,cnt)
  143.  
  144.         ncall    cnt,setsize,(cnt,1000,1000:-)
  145.         ncall    cnt,change,(scrollpane,0,0,width,height,CM_NONE:-)
  146.         cpy.p    cnt,[visual+vis_content]
  147.         cpy.p    scrollpane,[visual+vis_scrollpane]
  148.  
  149.  
  150.         ;    get pixmaps.
  151.         
  152.         qcall    ave/avo/pix/32bit/open,(buffer2,width,height,width*4:pixmap)
  153.         bcn    pixmap eq 0,_cw_fail
  154.         cpy.p    pixmap,[visual+vis_pixmap2]
  155.  
  156.         qcall    ave/avo/pix/32bit/open,(buffer,width,height,width*4:pixmap)
  157.         bcn    pixmap eq 0,_cw_fail
  158.         cpy.p    pixmap,[visual+vis_pixmap]
  159.         ncall    cnt,add,(cnt,pixmap,0:-)
  160.  
  161.  
  162.  
  163.         ;    link window and application.
  164.     
  165.         ncall    win,addlink,(win,app,CH_DIALOG_ACTION,EV_QUIT:i~)
  166.         ncall    app,add,(app,win,0:-)
  167.         ncall    win,update,(win:-)
  168.  
  169.  
  170.  
  171.         ;    activate window.
  172.  
  173.         cpy.i    2,tok            
  174.         ncall    ave,settoken,(ave,win,tok:-)
  175.  
  176.  
  177.  
  178.         ;    misc initializitations.
  179.  
  180.         cpy.i    width,[visual+vis_width]    
  181.         cpy.i    height,[visual+vis_height]
  182.         cpy.i    backcol,[visual+vis_backcolor]
  183.  
  184.         cpy.p    visual,p0
  185.         ret
  186.  
  187. _cw_fail:
  188.         qcall    lib/tek/kn/visual/destroyvisual,(visual:-)
  189. _cw_exit:
  190.         cpy.p    0,p0
  191.         ret
  192.         
  193.     defend
  194.  
  195.  
  196. ;-----------------------------------------------------------------------------
  197.  
  198.         data
  199.     
  200. ;-----------------------------------------------------------------------------
  201.  
  202. inputmethodname:
  203.         dc.b 'demo/ave/inputmethod',0
  204.         .align
  205.  
  206. avename:    dc.b '/device/ave/',0
  207.         .align
  208.  
  209. appname:    dc.b 'visual',0
  210.         .align
  211.  
  212. defaultfontname:    dc.b 'Mono',0
  213.         .align
  214.  
  215.  
  216.     toolend
  217.  
  218. ;-----------------------------------------------------------------------------
  219. ;=============================================================================
  220.